﻿using LunchListCore.Entities;
using LunchListCore.Interfaces.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LunchListCore.Interfaces.Agents
{
    public interface 
        ILunchAgent
    {
        IReservation AddReservation(IGuestId guest, IEventId lunchEvent);

        IReservation RemoveReservation(IGuestId guest, IEventId lunchEvent);

        IList<IGuest> GetGuests(IEventId lunchEvent);

        IEvent AddEvent(string eventName, DateTime eventDate, IGuestId guest, string adLogin);

        IList<IEvent> GetEvents(DateTime? eventDate=null);

        Dictionary<IEvent, IList<IGuest>> GetGuestsAndEvents(DateTime eventDate);

        IList<DateTime> GetUpcomingEventDates();

        bool DeleteEvent(int id);
    }
}
